Skip to contentSkip to conversation

MPLS Push action

DISCUSSION Kishore Padmanabha 3 participants 6 messages Feb 27, 2025 – Mar 7, 2025

lore
Share & tools
lore
#0 lore raw

Hi,

When MPLS push action is used, using testpmd action of_push_mpls, it accepts the ethertype only. How do I specify the MPLS label and other fields for the MPLS header to be added ? In the doc
<https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf>,
in section 7.2.3.7 there is mention of OFXPMT_OFB_MPLS_LABEL and other MPLS fields, but I could not find that in dpdk implementation.

Thanks,

Kishore

Signature · 11 lines
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.
#1 lore raw

Hi,

Anyone has any inputs on this. Or should I add new CLI commands in testpmd to support action for push MPLS tag.

Thanks,

Kishore

*From:* Kishore Padmanabha <[email protected]> *Sent:* Thursday, February 27, 2025 6:35 PM
*To:* '[email protected]' <[email protected]>
*Subject:* MPLS Push action

Hi,

When MPLS push action is used, using testpmd action of_push_mpls, it accepts the ethertype only. How do I specify the MPLS label and other fields for the MPLS header to be added ? In the doc
<https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf>,
in section 7.2.3.7 there is mention of OFXPMT_OFB_MPLS_LABEL and other MPLS fields, but I could not find that in dpdk implementation.

Thanks,

Kishore

Signature · 11 lines
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.
#2 lore raw

+Thomas Monjalon

Quoted 37 lines · Kishore Padmanabha

Hi,

Anyone has any inputs on this. Or should I add new CLI commands in testpmd to support action for push MPLS tag.

Thanks,

Kishore

From: Kishore Padmanabha <[email protected]>
Sent: Thursday, February 27, 2025 6:35 PM
To: '[email protected]' <[email protected]>
Subject: MPLS Push action

Hi,

When MPLS push action is used, using testpmd action of_push_mpls, it accepts the ethertype only. How do I specify the MPLS label and other fields for the MPLS header to be added ? In the doc, in section 7.2.3.7 there is mention of OFXPMT_OFB_MPLS_LABEL and other MPLS fields, but I could not find that in dpdk implementation.

Thanks,

Kishore

#3 lore raw

Hi,

This is the related code:

/**
* RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
*
* Implements OFPAT_PUSH_MPLS ("push a new MPLS tag") as defined by the
* OpenFlow Switch Specification.
*/

struct rte_flow_action_of_push_mpls {
    rte_be16_t ethertype; /**< EtherType. */
};
Quoted 6 lines
Quoted 4 lines · Kishore Padmanabha

Hi,

Anyone has any inputs on this. Or should I add new CLI commands in testpmd to support action for push MPLS tag.

This action was designed as an OpenFlow implementation. Is what you require an OpenFlow spec?
If yes, we may consider an update,
if no, we should create a new action.

Quoted 5 lines
Quoted 5 lines

Thanks,

Kishore

Quoted 8 lines
Quoted 8 lines

From: Kishore Padmanabha <[email protected]>
Sent: Thursday, February 27, 2025 6:35 PM
To: '[email protected]' <[email protected]>
Subject: MPLS Push action

Hi,

When MPLS push action is used, using testpmd action of_push_mpls, it accepts the ethertype only. How do I specify the MPLS label and other fields for the MPLS header to be added ? In the doc, in section 7.2.3.7 there is mention of OFXPMT_OFB_MPLS_LABEL and other MPLS fields, but I could not find that in dpdk implementation.

What is this documentation?
Please provide a link.

#4 lore raw

Hi Thomas,

Quoted 10 lines · Thomas Monjalon

Hi,

This is the related code:

/**
* RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
*
* Implements OFPAT_PUSH_MPLS ("push a new MPLS tag") as defined by the
* OpenFlow Switch Specification.
*/

Quoted 4 lines
struct rte_flow_action_of_push_mpls {
    rte_be16_t ethertype; /**< EtherType. */
};

That is correct, it is related to the MPLS push action.

Quoted 9 lines
Quoted 9 lines
Quoted 4 lines · Kishore Padmanabha

Hi,

Anyone has any inputs on this. Or should I add new CLI commands in

Quoted 8 lines

testpmd to support action for push MPLS tag.

This action was designed as an OpenFlow implementation. Is what you require an OpenFlow spec?
If yes, we may consider an update,
if no, we should create a new action.

The openflow spec

https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf
has mention of the MPLS push action but it does not mention how to specify how to configure the mpls label, TC and BOS.

Quoted 18 lines
Quoted 5 lines
Quoted 5 lines

Thanks,

Kishore

Quoted 8 lines
Quoted 8 lines

From: Kishore Padmanabha <[email protected]>
Sent: Thursday, February 27, 2025 6:35 PM
To: '[email protected]' <[email protected]>
Subject: MPLS Push action

Hi,

When MPLS push action is used, using testpmd action of_push_mpls, it

accepts the ethertype only. How do I specify the MPLS label and other fields for the MPLS header to be added ? In the doc, in section 7.2.3.7 there is mention of OFXPMT_OFB_MPLS_LABEL and other MPLS fields, but I could not find that in dpdk implementation.

Quoted 4 lines

What is this documentation?
Please provide a link.

The above label is only mentioned for match and it is documented in

https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf
section 7.2.3.7

Signature · 11 lines
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.
#5 lore raw

Hi Thomas,

Any update on this.

Thanks,
Kishore

Quoted 69 lines · Kishore Padmanabha

Hi Thomas,

Quoted 10 lines · Thomas Monjalon

Hi,

This is the related code:

/**
* RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
*
* Implements OFPAT_PUSH_MPLS ("push a new MPLS tag") as defined by the
* OpenFlow Switch Specification.
*/

Quoted 4 lines
struct rte_flow_action_of_push_mpls {
    rte_be16_t ethertype; /**< EtherType. */
};

That is correct, it is related to the MPLS push action.

Quoted 9 lines
Quoted 9 lines
Quoted 4 lines · Kishore Padmanabha

Hi,

Anyone has any inputs on this. Or should I add new CLI commands in

Quoted 8 lines

testpmd to support action for push MPLS tag.

This action was designed as an OpenFlow implementation. Is what you require an OpenFlow spec?
If yes, we may consider an update,
if no, we should create a new action.

The openflow spec

https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf
has mention of the MPLS push action but it does not mention how to specify how to configure the mpls label, TC and BOS.

Quoted 18 lines
Quoted 5 lines
Quoted 5 lines

Thanks,

Kishore

Quoted 8 lines
Quoted 8 lines

From: Kishore Padmanabha <[email protected]>
Sent: Thursday, February 27, 2025 6:35 PM
To: '[email protected]' <[email protected]>
Subject: MPLS Push action

Hi,

When MPLS push action is used, using testpmd action of_push_mpls, it

accepts the ethertype only. How do I specify the MPLS label and other fields for the MPLS header to be added ? In the doc, in section 7.2.3.7 there is mention of OFXPMT_OFB_MPLS_LABEL and other MPLS fields, but I could not find that in dpdk implementation.

Quoted 4 lines

What is this documentation?
Please provide a link.

The above label is only mentioned for match and it is documented in

https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.1.pdf
section 7.2.3.7

Signature · 11 lines
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.